using System.ComponentModel.DataAnnotations;
using SupplierCustomerManagement.Domain.Enums;

namespace SupplierCustomerManagement.Domain.Entities
{
    /// <summary>
    /// 银行账户实体
    /// 代表客户或供应商的银行账户信息，包含银行信息、账户信息、联系信息等
    /// </summary>
    public class BankAccount : BaseEntity
    {
        /// <summary>
        /// 关联实体ID（客户ID或供应商ID）
        /// </summary>
        public int RelatedEntityId { get;  set; }

        /// <summary>
        /// 关联实体类型（Customer/Supplier）
        /// </summary>
        public EntityType RelatedEntityType { get;  set; }

        /// <summary>
        /// 银行名称
        /// </summary>
        public string BankName { get;  set; }

        /// <summary>
        /// 账户名称
        /// </summary>
        public string AccountName { get;  set; }

        /// <summary>
        /// 开户行
        /// </summary>
        public string OpeningBank { get;  set; }

        /// <summary>
        /// 账户号码
        /// </summary>
        public string AccountNumber { get;  set; }

        /// <summary>
        /// 账户类型（银行卡/存折）
        /// </summary>
        public AccountType AccountType { get;  set; }

        /// <summary>
        /// 账户属性（公司/个人）
        /// </summary>
        public AccountProperty AccountProperty { get;  set; }

        /// <summary>
        /// 账户关系类型
        /// </summary>
        public AccountRelationshipType? AccountRelationshipType { get;  set; }

        /// <summary>
        /// 手机号码
        /// </summary>
        public string? MobileNumber { get;  set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        public string? IdNumber { get;  set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get;  set; }

        
    }
} 